package com.example.onlinemusic.config;
import com.example.onlinemusic.tools.Constant;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

// 登录拦截器：实现HandlerInterceptor接口
public class LoginInterceptor implements HandlerInterceptor {

    // 预处理方法：在控制器方法执行前调用
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 1. 获取当前会话（不自动创建新会话）
        HttpSession session = request.getSession(false);

        // 2. 验证登录状态（与原逻辑一致）
        if (session == null || session.getAttribute(Constant.USERINFO_SESSION_KEY) == null) {
            // 未登录：返回错误信息（根据你的前端需求调整响应格式）
            response.setContentType("application/json;charset=UTF-8");
            response.getWriter().write("{\"status\": -1, \"message\": \"没有登录！\", \"data\": false}");
            return false; // 拦截请求，不再继续执行控制器方法
        }

        // 已登录：放行请求
        return true;
    }
}